#include "TrueText/Config.h"
#include "FontEffectOutlineImpl.h"
#include "OutlineDrawer.h"

namespace TrueText {

FontEffectOutlineImpl::FontEffectOutlineImpl()
	: enabled(false)
{
}

FontEffectOutlineImpl::FontEffectOutlineImpl(const FontEffectOutlineImpl& rhs)
	: enabled(rhs.enabled)
	, outlineInfo(rhs.outlineInfo)
{ }

const FontEffectOutlineImpl& FontEffectOutlineImpl::operator=(const FontEffectOutlineImpl& rhs)
{
	if (&rhs == this)
		return *this;

	enabled = rhs.enabled;
	outlineInfo = rhs.outlineInfo;

	return *this;
}

FontEffectOutlineImpl::~FontEffectOutlineImpl()
{
}

const OutlineInfo& FontEffectOutlineImpl::GetOutlineInfo() const
{
	return outlineInfo;
}

void FontEffectOutlineImpl::SetOutlineInfo(const OutlineInfo& value)
{
	outlineInfo = value;
}

bool FontEffectOutlineImpl::IsEnabled() const
{
	return enabled;
}

void FontEffectOutlineImpl::Enable(bool fEnable)
{
	enabled = fEnable;
}

boost::shared_ptr<Drawer> FontEffectOutlineImpl::CreateDrawer(boost::shared_ptr<FontImpl> font, boost::shared_ptr<Drawer> textDrawer) const
{
	return boost::shared_ptr<Drawer>(new OutlineDrawer(font, textDrawer, outlineInfo));
}

}